import time

from selenium import webdriver
from selenium.webdriver.common.by import By

from utils import WebUtilDriver
from base.base_page import BasePage

# class 对象库层():
class LoginPage(BasePage):
    def __init__(self):
        super().__init__()  # 调用父类的init方法
        #类型
        self.type_style_val=(By.XPATH,'//*[@id="mian"]/form/div/div[2]/ul/li[1]/div[1]/input')
        #用户名
        self.username_style_val=(By.ID,'//*[@id="username"]')
        #密码
        self.pw_style_val=(By.ID,'//*[@id="password"]')

        #登录按钮
        self.btn_style_val=(By.XPATH,'//*[@id="mian"]/form/div/div[2]/ul/li[6]/input')

        #忘记密码
        self.re_pw_style_val=(By.XPATH,'//*[@id="mian"]/form/div/div[2]/ul/li[6]/a')



   #类型
    def find_type(self):
        find_type=self.get_element(self.type_style_val[0],self.type_style_val[1])
        return find_type

    #用户名
    def find_username(self):
        '''
        当前方法查找的是用户名填充位置
        :return: 元素返回
        '''
        username_element = self.get_element(self.username_style_val[0],self.username_style_val[1])
        return username_element

    def find_password(self):
        '''
        当前方法查找的是密码
        :return:
        '''
        password_element = self.get_element(self.pw_style_val[0],self.pw_style_val[1])
        return password_element

    def find_submit(self):
        '''
        当前方法查找的是登录按钮
        :return:
        '''
        submit_element = self.get_element(self.btn_style_val[0],self.btn_style_val[1])
        return submit_element


    def find_forget_pwd(self):
        '''
        当前方法,查找的是忘记密码按钮
        :return:
        '''
        foget_pwd_element = self.get_element(self.re_pw_style_val[0],self.re_pw_style_val[1])
        return foget_pwd_element




# 操作层
class LoginHandler():

    def __init__(self):
        self.login_page = LoginPage()

    #选择类型
    def click_type(self):
        self.login_page.find_type().click()

    # 填充用户名
    def fill_username(self,username):
        self.login_page.find_username().send_keys(username)

    # 填充密码
    def fill_pwd(self,pwd):
        self.login_page.find_password().send_keys(pwd)

    # 点击登录
    def click_login(self):
        self.login_page.find_submit().click()


    # 点击忘记密码
    def click_foget(self):
        self.login_page.find_forget_pwd().click()



# 业务层
class LoginAct():

    def  __init__(self):
        self.handler_login = LoginHandler()

    def login_common(self,username,pwd):


        #选择类型
        self.handler_login.fill_type()
        # 输入用户名
        self.handler_login.fill_username(username)

        # 输入密码
        self.handler_login.fill_pwd(pwd)

        # 让丫的睡30秒，手动输入验证码
        time.sleep(30)

        # 点击登录
        self.handler_login.click_login()
